package library.system.manager;

import library.system.entity.Book;
import library.system.entity.Reader;
import java.util.Scanner;

public class LibrarySystem {
    public static void main(String[] args) {
        LibraryManager manager = new LibraryManager();
        manager.loadData();
        Scanner sc = new Scanner(System.in);

        while (true) {
            // 主菜单（不变）
            System.out.println("\n===== 图书馆管理系统 =====");
            System.out.println("1. 添加图书");
            System.out.println("2. 添加读者");
            System.out.println("3. 借书");
            System.out.println("4. 还书");
            System.out.println("5. 退出系统");
            System.out.println("6. 查看所有图书");
            System.out.println("7. 删除指定读者");
            System.out.println("8. 查看所有借阅记录");
            System.out.print("请选择操作（1-8）：");

            int choice = sc.nextInt();
            sc.nextLine();  // 清空缓冲区

            try {
                switch (choice) {
                    case 1:  // 添加图书（不变）
                        System.out.print("输入ISBN：");
                        String isbn = sc.nextLine();
                        System.out.print("输入书名：");
                        String bookName = sc.nextLine();
                        System.out.print("输入作者：");
                        String author = sc.nextLine();
                        System.out.print("输入出版社：");
                        String press = sc.nextLine();
                        System.out.print("输入库存数量：");
                        int stock = sc.nextInt();
                        sc.nextLine();
                        manager.addBook(new Book(isbn, bookName, author, press, stock));
                        System.out.println("图书添加成功！");
                        break;

                    case 2:  // 添加读者（不变）
                        System.out.print("输入借书证号：");
                        String readerId = sc.nextLine();
                        System.out.print("输入姓名：");
                        String readerName = sc.nextLine();
                        System.out.print("输入联系方式：");
                        String contact = sc.nextLine();
                        manager.addReader(new Reader(readerId, readerName, contact));
                        System.out.println("读者添加成功！");
                        break;

                    case 3:  // 【修改核心】借书（新增输入借阅数量）
                        System.out.print("输入图书ISBN：");
                        String borrowIsbn = sc.nextLine();
                        System.out.print("输入借书证号：");
                        String borrowReaderId = sc.nextLine();
                        System.out.print("输入借阅数量：");  // 新增
                        int borrowNum = sc.nextInt();  // 新增：接收借阅数量
                        sc.nextLine();  // 清空缓冲区
                        // 调用修改后的借书方法，传入数量参数
                        manager.borrowBook(borrowIsbn, borrowReaderId, borrowNum);
                        break;

                    case 4:  // 还书（不变）
                        System.out.print("输入图书ISBN：");
                        String returnIsbn = sc.nextLine();
                        System.out.print("输入借书证号：");
                        String returnReaderId = sc.nextLine();
                        manager.returnBook(returnIsbn, returnReaderId);
                        break;

                    case 5:  // 退出（不变）
                        manager.saveData();
                        System.out.println("系统已退出，感谢使用！");
                        sc.close();
                        return;

                    case 6:  // 查看所有图书（不变）
                        manager.showAllBooks();
                        break;

                    case 7:  // 删除指定读者（不变）
                        System.out.print("输入要删除的读者借书证号：");
                        String delId = sc.nextLine();
                        manager.deleteReader(delId);
                        break;

                    case 8:  // 查看所有借阅记录（不变）
                        manager.showAllRecords();
                        break;

                    default:
                        System.out.println("无效操作，请输入1-8之间的数字！");
                }
            } catch (Exception e) {
                System.out.println("操作失败：" + e.getMessage());
            }
        }
    }
}